LAZY, EXTRA_LAZY, EAGER
defaultでLAZYである
必要になった時に遅延読み込みする
しかし、N+1問題に遭遇する
SQLで全部のデータを取ってくるのでアクセス回数は減って速い
が、必要以上にデータを取ってくるのでメモリを食う
実際に、全データを使うのであればそれは必要なメモリなので別に良いが、多くのケースではそんなことないと思うので過剰にとってくることになる
EXTRA_LAZY
countするだけ、みたいに
データの内部までは必要ないけど、
全体の個数がほしい
のようなときに、LAZYよりやや効率的になる
LAZY, EGAER, EXTRA_LAZYの3つを比較している
この記事の「結論」にも書かれているが、結局LAZYかEXTRA_LAZYを使うことになるっぽい
しかしこれをEntity定義時に指定しないといけないの渋すぎない #?? query発行する際に指定できるべきだと思うけどmrsekut.icon
これが無理なのでEAGERを使う機会はほぼない気がする